#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <sys/stat.h>

int main(int argc, char const *argv[])
{
	int i;
	struct stat buf;

	for (i = 0; i < argc; ++i) {
		printf("%s: ", argv[i]);
		if (stat(argv[i], &buf) < 0) {
			printf("chdir failed: %s\n", strerror(errno));
			continue;
		}

		printf("dev = %d/%d", major(buf.st_dev), minor(buf.st_dev));
		if (S_ISCHR(buf.st_mode) || S_ISBLK(buf.st_mode))	{
			printf(" (%s) rdev = %d/%d", S_ISCHR(buf.st_mode)?"chr":"blk", major(buf.st_rdev), minor(buf.st_rdev));
		}

		printf("\n");
	}
	return 0;
}